package org.jeecg.modules.power.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.app.v1.shop.entity.ApiAddShopEntity;
import org.jeecg.modules.app.v1.shop.entity.ApiListShopEntity;
import org.jeecg.modules.app.v1.shop.entity.ApiShopEntity;
import org.jeecg.modules.power.shop.entity.YlShop;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.system.entity.SysUser;

import java.util.List;
import java.util.Map;

/**
 * @Description: 门店表
 * @Author: jeecg-boot
 * @Date:   2024-07-08
 * @Version: V1.0
 */
public interface IYlShopService extends IService<YlShop> {

    /**
     * 新增门店
     * @param entity
     */
    void saveShopInfo(ApiAddShopEntity entity,SysUser bd);

    /**
     * 修改门店信息
     * @param entity
     */
    void editShopInfo(ApiAddShopEntity entity);
    /**
     * 门店列表
     * @param lat
     * @param lng
     * @param shopName
     * @return
     */
    List<ApiListShopEntity> list(String lat, String lng, String shopName, Integer distance,Integer number);
    IPage<ApiListShopEntity> mylist(Page<ApiListShopEntity> page, String lat, String lng, String shopName,String shopBd,String shopStatus);

    /**
     * 他人门店、公海门店列表
     * @param page
     * @param lat
     * @param lng
     * @param status 门店状态
     * @param shopBd
     * @return
     */
    IPage<ApiListShopEntity> otherShopList(Page<ApiListShopEntity> page, String lat, String lng, String status,String shopName, String shopBd);

    /**
     * 收藏门店列表
     * @param page
     * @param lat
     * @param lng
     * @param shopBd
     * @return
     */
    IPage<ApiListShopEntity> collectList(Page<ApiListShopEntity> page, String lat, String lng,String shopName, String shopBd);

    /**
     * 门店详情
     * @param id
     * @return
     */
    ApiShopEntity myShopDetail(String id);

    /**
     * 解绑到公海
     * @param shopId
     * @param user
     */
    void sea(String shopId, SysUser user);

    /**
     * 从公海认领门店
     * @param shopId
     * @param user
     */
    void claim(String shopId, SysUser user);





    /**全国地图数据
     *
     * @param name 省
     * @return
     */
    int getShopQuantity(String name);


    /**mi
     * 获取上个月 新增的门店数据
     * @return
     */
    List<YlShop> getLastMonthShop();

    /**
     * 获取本月新增的门店数据
     * @param jDate 截止时间
     * @return
     */
    List<YlShop> getThisMonthShop(String jDate);



    /**
     * app首页统计 近多少天的数据
     * @param day 近几天
     * @param bdId  业务员id
     * @param groupId 小组id
     * @return
     */
    Integer getHomeShopStatistics(Integer day,String bdId,String groupId );

    /**
     * app首页统计 近多少天的数据 折线图
     * @param day 近几天
     * @param bdId  业务员id
     * @param groupId 小组id
     * @return
     */
    List<Map>  getHomeShopLineChart(Integer day, String bdId, String groupId );


    /**mi
     *  APP运营端-新增门店-2级页面- 店铺数据
     * @param type 时间类型（1今日、2昨日、3本周、4本月）
     * @param bdId 业务员id
     * @param groupId 小组id
     * @return
     */
    List<Map>   getAddShopList(Integer type, String bdId, String groupId);


    /** 根据 群组 获取 业务员id  获取 门店数据  getShopByIdList
     * mi
     * @param bdId 业务员id
     * @param groupId 小组id
     * @return
     */
    List<String>   getShopByIdList( String bdId, String groupId);

}
